package com.shujia.redisapi;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.resps.Tuple;

import java.util.*;

public class RedisDemo1 {
    public static void main(String[] args) {
        //1、指定要连接的redis服务器ip地址和端口号
        //public Jedis(final String host, final int port)
        Jedis jedis = new Jedis("192.168.21.150", 7001);

        //切换库
//        jedis.select(1);

        //redis的javaapi操作的方法基本上与命令的名字一模一样
        //string list set zset hash
//        String s = jedis.set("age", "18");
//        System.out.println(s);
//        String name = jedis.get("name");
//        System.out.println(name);
        //设置过期时间
//        jedis.set("yzm","342356");
//        long l = jedis.expire("yzm", 60);
//        System.out.println(l);
//        jedis.setex("yzm2",60,"786231");

        //list
//        jedis.lpush("list1","张正大","吴小康","雷鹏程");
//        List<String> stringList = jedis.lrange("list1", 0, -1);
//        stringList.forEach(System.out::println);

        //set
//        jedis.sadd("set1","hadoop","java","hbase","redis","hadoop","hbase");
//        Set<String> set1 = jedis.smembers("set1");
//        set1.forEach(System.out::println);

        //zset
        //long zadd(String key, Map<String, Double> scoreMembers);
        //先将值和分数封装成map集合
//        HashMap<String, Double> map = new HashMap<>();
//        map.put("吴小康",100.0);
//        map.put("张正大",96.0);
//        map.put("雷鹏程",89.0);
//        map.put("黑帅",93.0);
//        map.put("小虎",60.0);
//
//        jedis.zadd("scores",map);
//        List<String> stringList = jedis.zrangeByScore("scores", 0.0, 100.0);
//        stringList.forEach(System.out::println);
//        List<Tuple> tupleList = jedis.zrangeByScoreWithScores("scores", 0.0, 100.0);
//        tupleList.forEach(e->{
//            String element = e.getElement();
//            double score = e.getScore();
//            System.out.println(element+"--"+score);
//        });
//        List<Tuple> tupleList = jedis.zrevrangeByScoreWithScores("scores", 100.0, 0.0);
//        tupleList.forEach(e->{
//            String element = e.getElement();
//            double score = e.getScore();
//            System.out.println(element+"--"+score);
//        });

        //hash
//        HashMap<String, String> map = new HashMap<>();
//        map.put("姓名","小虎");
//        map.put("年龄","18");
//        map.put("性别","男");
//        map.put("住址","安徽合肥");
//        jedis.hset("xiaohuInfo",map);
//        Map<String, String> xiaohuInfo = jedis.hgetAll("xiaohuInfo");
//        xiaohuInfo.forEach((k, v) -> System.out.println(k + "--" + v));

        //关闭并释放连接
        jedis.close();
    }
}
